TCP based data packet networks are ubiquitous in today's computing environment. The Transmission Control Protocol (TCP) is a fundamental protocol within the internet architecture and amongst its many tasks is to manage the transmission of data packets within a data network.
In the transmission of data packets within a network it is usual for the sender to wait a period of time for an acknowledgment from the recipient to ensure that the recipient did indeed receive the data packet. If the reply does not come within the expected period, the packet is assumed to have been lost and the data is retransmitted. There is therefore a requirement to estimate what should be the expected time.
To address this it is usual in TCP implementations to monitor the normal exchange of data packets so as to develop an estimate of what can be considered a typical expected time. Such a process is called Round-Trip Time (RTT) estimation. It will be appreciated that it is usual in network traffic for packets to be dropped thereby requiring transmission, what is important within the context of traffic management is to ensure that the time period established for generation of a retransmitted packet is not too short. RTT estimates are one of the most important performance parameters in a TCP based data network as if the RTT estimate is too low, packets are retransmitted unnecessarily; if too high, the connection can sit idle while the sender waits to timeout.
In a simple implementation of RTT estimation a sender sends a data packet to a recipient. On receipt of that data packet the recipient immediately sends an acknowledgement which is then received by the sender. The delay between the sending of the data packet and the receipt of the acknowledgement is the RTT estimate. This RTT estimate could be measured at any point between the sender and the recipient, insofar as that point is capable of detecting an outbound data packet and the acknowledgement associated therewith.
There are a number of challenges associated with RTT estimates many of which are based on what the recipient does on receipt of a data packet. It is known that a recipient may not immediately acknowledge each and every data packet received. They may for example delay an acknowledgement, aggregate a number of acknowledgements into one, reorder the acknowledgements or acknowledge retransmissions in which case the RTT estimator cannot ascertain accurately which data packet is being acknowledged. Any one of these challenges could result in an error in the estimated RTT which will have an effect on the management of the traffic within the data network.
It will be understood that this becomes more problematic in a low-latency environment where the network round-trip times can be of the order of a few milliseconds or less, but typical TCP implementations will use delayed-ack (d-ACK) timers of anywhere from 50 ms up to 500 ms. A naive measurement of round-trip time will see average network round-trip times of 25 ms to 250 ms, well off the mark.
There is therefore a need for an improved system and methodology for estimation of RTT within a packet based network.